#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :utils.py
# @Time      :2025/2/21 12:39
# @Author    :kk
import hashlib
import random
import re


def md5(raw):
    # md5加密实例化
    md5 = hashlib.md5()
    # 需要的话进行utf8编码
    md5.update(raw.encode('utf8'))
    return md5.hexdigest()

# 封装sha256
def sha56(raw):
    # 实例化sha256对象
    sha56 = hashlib.sha256()
    # 把要加密的密码，进行update操作并转成utf-8,不写默认是utf-8
    sha56.update(raw.encode('utf-8'))
    # 返回一个sha56的16进制的格式
    return sha56.hexdigest()



# 加盐，随机盐
def random_safe(n=5):
    # 定义一个简单的字符串
    str = '23456789abcdefgjkmnpqrestuvwxyz'
    # 定义一个空值，将每次循环的随机数，拼接到ret上。然后返回。
    ret = ''
    for i in range(n):
        # len出字符串的长度，利用下标进行随机抽出。
        ret += str[random.randint(0,30)]
    return ret


# 正则验证邮箱
def check_email(email):
    ret = re.match(r'(\w+)@(\w+)\.(\w){2,}$',email)
    if ret:
        # 满足条件
        return True
    else:
        # 不满足条件
        return False

# 正则验证密码
def check_passwd(password):
    pattern = re.match("^(?=.*[a-zA-Z].*)(?=.*[\d].*)(?=.*_.*).{6}$",password)
    if pattern:
        return True
    else:
        return False